#include <iostream>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>

void SigHandler(int sig)
{
    std::cout << "获得了一个信号: " << sig << std::endl;
    exit(13);
}

int main()
{
    // 把所有的普通信号全都自定义捕捉
    for (int i = 1; i < 32; i++)
    {
        signal(i, SigHandler);
    }

    // for (int i = 1; i < 32; i++)
    // {
    //     // if(i==9||i==19)
    //     //     continue;
    //     raise(i);
    //     sleep(1);
    // }

    // signal(2, SigHandler);
    int cnt = 0;
    while (true)
    {
        std::cout << "hello linux! " << cnt++ << " ,pid: " << getpid() << std::endl;
        sleep(1);

        // abort(); //发送6号信号终止进程，并且它发送的6号信号无法被自定义捕捉

        // int a=10;
        // a/=0; //除0错误

        int *p=nullptr;
        *p=10;//野指针
    }
    return 0;
}
